﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Travel.Data;
using Travel.Data.Dtos;
using Travel.Data.Dtos.TravelBusiness;
using Travel.Data.Inputs;

namespace Travel.Service.TravelBusiness
{
    public interface ITraveIService
    {
        /// <summary>
        /// 旅游景点查询
        /// </summary>
        /// <param name="travelQueryInput"></param>
        /// <returns></returns>
        Task<Results<PageDto<TravelDto>>> TravelQuery(TravelQueryInput travelQueryInput);
        /// <summary>
        /// 查看详情
        /// </summary>
        /// <param name="travelId"></param>
        /// <returns></returns>
        Task<Results<TravelDetailDto>> GetDetail(long travelId);
        /// <summary>
        /// 旅游景点添加或者修改
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<Results<int>> TravelAddOrUpdate(TravelAddOrUpdateInput input);
        /// <summary>
        /// 删除旅游景点
        /// </summary>
        /// <param name="roleId"></param>
        /// <param name="loginUserId"></param>
        /// <param name="idList"></param>
        /// <returns></returns>
        Task<Results<int>> TracelDelete(long roleId,params long[] idList);
        /// <summary>
        /// 旅游景点审批
        /// </summary>
        /// <param name="travelAuditInput"></param>
        /// <returns></returns>
        Task<Results<int>> TravelAudit(TravelAuditInput travelAuditInput);
        /// <summary>
        /// 上架或者下架旅游景点
        /// </summary>
        /// <returns></returns>
        Task<Results<int>> TravelShekverOrUnShelve(TravelShekverOrUnShelveInput travelShekverOrUnShelveInput);
        /// <summary>
        /// 设置领队
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public Task<Results<int>> SetTravelLeader(SetTravelLeaderInput input);
        /// <summary>
        /// 查看游客列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task< Results<QueryTravelUserDto>>QueryTravelUserList(TravelUserQueryInput input);
    }
}
